package com.ferry.transport.netty.server;

import com.ferry.registry.domain.registry.RegistryMetaData;
import com.ferry.transport.api.Directory;
import com.ferry.transport.netty.provider.ServiceWrapper;

import java.util.List;

/**
 * Created by daiyong
 */
public interface ProviderServer {

	/**
	 * 启动server
	 * @param sync
	 */
	void start();

	/**
	 * 发布服务
	 */
	void publish(List<RegistryMetaData> registryMetaDatas);

	/**
	 * 发布服务
	 */
	void publish(RegistryMetaData registryMetaData);

	/**
	 * 优雅关闭
	 */
	void shutdownGracefully();

	/**
	 * 查找服务
	 * @param directory
	 * @return
	 */
	ServiceWrapper lookup(Directory directory);

}
